﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WFNetLib;
using System.IO.Ports;
using System.Windows.Forms;
using System.Collections;

namespace ATReaderTest
{
    public class PPPProc
    {
        //         PPP协议 pppOP;
        //         pppPocket pppUp = new pppPocket();
        //         pppPocket pppDown = new pppPocket();
        //         SerialPort Com;
        //         int id;
        //         public PPPProc(SerialPort _com)
        //         {
        //             Com = _com;
        //             pppOP = new PPP协议(Com);
        //             id = 1;
        //         }
        //         public bool PPPConnect()
        //         {
        //             pppUp = pppOP.PPPReader(3);
        //             pppDown.Code = 0x01;
        //             pppDown.ID = pppUp.ID;
        //             pppDown.Protocol = 0xc021;
        //             pppDown.AddCommand(0x02, 0x00, 0x00, 0x00, 0x00);
        //             Random x = new Random();
        //             Union_UInt32 x32 = new Union_UInt32();
        //             x32.ofs_32 = (uint)x.Next();
        //             //pppDown.AddCommand(0x05, x32.ofs1_16.ofs1_8, x32.ofs1_16.ofs0_8, x32.ofs0_16.ofs1_8, x32.ofs0_16.ofs0_8);
        //             pppDown.AddCommand(0x07);
        //             pppDown.AddCommand(0x08);            
        //             pppOP.PPPSender(pppDown);
        //             pppUp = pppOP.PPPReader(3);
        //             if (pppUp.Code == 0x04)
        //             {
        //                 pppDown.ID = pppUp.ID;
        //                 foreach (DictionaryEntry comm in pppUp.Commands)
        //                 {
        //                     pppDown.RemoveCommand((byte)comm.Key);
        //                 }                
        //                 pppOP.PPPSender(pppDown);
        //                 pppUp = pppOP.PPPReader(3);
        //             }
        //             if (pppUp.Code == 0x02)
        //             {                
        //                 pppDown.ID = pppUp.ID;
        //                 pppDown.Code = 0x03;
        //                 pppDown.ClearCommand();
        //                 pppDown.AddCommand(0x03, 0xc0, 0x23);                
        //                 pppOP.PPPSender(pppDown);
        //                 pppUp = pppOP.PPPReader(3);
        //             }
        //             else
        //             {
        //                 MessageBox.Show("未知协议序列" + pppUp.Code.ToString());
        //             }
        //             if (pppUp.Code == 0x01)
        //             {
        //                 pppDown.ID = pppUp.ID;
        //                 pppDown.Code = 0x02;
        //                 pppDown.ClearCommand();
        //                 foreach (DictionaryEntry comm in pppUp.Commands)
        //                 {
        //                     pppDown.AddCommand((byte)comm.Key, (byte[])comm.Value);
        //                 }
        //                 pppOP.PPPSender(pppDown);
        //                 pppOP.bLCP = true;
        //             }
        //             else
        //             {
        //                 MessageBox.Show("未知协议序列" + pppUp.Code.ToString());
        //             }
        //             pppDown.ID = pppUp.ID;
        //             pppDown.Code = 0x01;
        //             pppDown.ClearCommand();
        //             pppDown.Protocol = 0xc023;
        //             byte[] Login=new byte[10] { 0x04, 0x6E, 0x6F, 0x6E, 0x65, 0x04, 0x6E, 0x6F, 0x6E, 0x65 };
        //             pppDown.Datas.AddRange(Login);
        //             pppOP.PPPSender(pppDown);
        //             pppUp = pppOP.PPPReader(3);            
        //             if (pppUp.Protocol == 0xc023 && pppUp.Code==0x02)
        //             {
        //                 pppDown.ID = pppUp.ID;
        //                 pppDown.Code = 0x01;
        //                 pppDown.ClearCommand();
        //                 pppDown.Protocol = 0x8021;
        //                 pppDown.AddCommand(0x03, 0x00, 0x00, 0x00, 0x00);
        //                 pppDown.AddCommand(0x81, 0x00, 0x00, 0x00, 0x00);
        //                 pppDown.AddCommand(0x83, 0x00, 0x00, 0x00, 0x00);                
        //                 pppOP.PPPSender(pppDown);                 
        //                 while (true)
        //                 {
        //                     pppUp = pppOP.PPPReader(3);
        //                     if(pppUp!=null && pppUp.Code!=0x01)
        //                         break;
        //                 }
        //             }
        //             else
        //             {
        //                 MessageBox.Show("未知协议序列" + pppUp.Code.ToString());
        //             }
        //             if (pppUp.Protocol == 0x8021 && pppUp.Code == 0x04)//可以进行设置
        //             {
        //                 pppDown.ID = pppUp.ID;
        //                 pppDown.Code = 0x01;
        //                 pppDown.Protocol = 0x8021;
        //                 foreach (DictionaryEntry comm in pppUp.Commands)
        //                 {
        //                     pppDown.RemoveCommand((byte)comm.Key);
        //                 } 
        //                 pppOP.PPPSender(pppDown);
        //                 while (true)
        //                 {
        //                     pppUp = pppOP.PPPReader(3);
        //                     if (pppUp != null && pppUp.Code != 0x01)
        //                         break;
        //                 }              
        //             }
        //             else
        //             {
        //                 MessageBox.Show("未知协议序列" + pppUp.Code.ToString());
        //             }            
        //             if (pppUp.Protocol == 0x08021 && pppUp.Code == 0x03)
        //             {
        // //                 pppDown.ID = pppUp.ID;
        // //                 pppDown.Code = 0x02;
        // //                 pppDown.Protocol = 0x8021;
        // //                 pppDown.ClearCommand();
        // //                 pppOP.PPPSender(pppDown);
        //                 pppDown.ID = pppUp.ID;
        //                 pppDown.Code = 0x02;
        //                 pppDown.Protocol = 0x8021;
        //                 pppDown.ClearCommand();
        //                 pppOP.PPPSender(pppDown);
        // 
        //                 pppDown.ID = pppUp.ID;
        //                 pppDown.Code = 0x01;
        //                 pppDown.Protocol = 0x8021;
        //                 pppDown.ClearCommand();
        //                 pppDown.AddCommand((byte)0x03,(byte[])pppUp.Commands[(byte)3]);
        //                 pppOP.PPPSender(pppDown);
        //                 while (true)
        //                 {
        //                     pppUp = pppOP.PPPReader(3);
        //                     if (pppUp != null && pppUp.Code != 0x01)
        //                         break;
        //                 }
        //             }
        //             else
        //             {
        //                 MessageBox.Show("未知协议序列" + pppUp.Code.ToString());
        //             }
        //             if (pppUp.Protocol == 0x08021 && pppUp.Code == 0x02)
        //             {
        //                 //                 pppDown.ID = pppUp.ID;
        //                 //                 pppDown.Code = 0x02;
        //                 //                 pppDown.Protocol = 0x8021;
        //                 //                 pppDown.ClearCommand();
        //                 //                 pppOP.PPPSender(pppDown);
        //                 pppDown.ID = pppUp.ID;
        //                 pppDown.Code = 0x02;
        //                 pppDown.Protocol = 0x8021;
        //                 pppDown.ClearCommand();
        //                 pppOP.PPPSender(pppDown);
        //                 while (true)
        //                 {
        //                     pppUp = pppOP.PPPReader(3);
        //                     if (pppUp != null && pppUp.Code != 0x01)
        //                         break;
        //                 }
        //             }
        //             else
        //             {
        //                 MessageBox.Show("未知协议序列" + pppUp.Code.ToString());
        //             }
        //             
        // //             pppDown.Data = new byte[pppUp.Data.Length];
        // //             for (int i = 0; i < pppUp.Data.Length; i++)
        // //             {
        // //                 pppDown.Data[i] = pppUp.Data[i];
        // //             }
        // //             pppOP.PPPSender(pppDown);
        // //             pppDown.Code = 0x01;
        // //             pppDown.Protocol = 0xc023;
        // //             pppDown.Data = 
        // //             pppOP.PPPSender(pppDown);
        // //             pppUp = pppOP.PPPReader();      
        //             return false;
        //         }
        //     }
    }
}
